home *** CD-ROM | disk | FTP | other *** search
- /*
- * NAME: TEST
- *
- * DESCRIPTION: TEST THE LAYER CODE.
- *
- * SYNOPSIS: TEST (TESTNO, SIZE)
- * INT TESTNO;
- * INT SIZE;
- *
- * GLOBALS: NONE.
- *
- * CALLS: LAYERS (LAYERS.C)
- * NEWLAYER (NEWLAYER.C)
- * LLINE (LLINE.C)
- * HILBERT (HILBERT.C)
- * SIERPINSKI (SIERPINSKI.C)
- * PLOT (PLOT.C)
- * LBLT (LBLT.C)
- * LBITBLT (LBITBLT.C)
- * UPFRONT (UPFRONT.C)
- * DELLAYER (DELLAYER.C)
- *
- * CALLED BY: MAIN (JERQ.C)
- */
- #INCLUDE "LAYERS.H"
-
- EXTERN STRUCT BITMAP *DISPLAY;
-
- UNSIGNED SHORT SPIRAL[] = {
- 0XFFFF, 0X8001, 0XBFFD, 0XA005,
- 0XAFF5, 0XA815, 0XABD5, 0XAA55,
- 0XAA55, 0XABD5, 0XA815, 0XAFF5,
- 0XA005, 0XBFFD, 0X8001, 0XFFFF,
- 0X0000
- };
- UNSIGNED SHORT PATTERN[] = {
- 0X3333, 0XCCCC, 0X3333, 0XCCCC,
- 0X3333, 0XCCCC, 0X3333, 0XCCCC,
- 0X3333, 0XCCCC, 0X3333, 0XCCCC,
- 0X3333, 0XCCCC, 0X3333, 0XCCCC,
- 0X0000
- };
- UNSIGNED SHORT HT1[] = {
- 0X5555, 0X5555, 0X5555, 0X5555,
- 0X5555, 0X5555, 0X5555, 0X5555,
- 0X5555, 0X5555, 0X5555, 0X5555,
- 0X5555, 0X5555, 0X5555, 0X5555,
- 0X0000
- };
- UNSIGNED SHORT HT2[] = {
- 0XFFFF, 0X0000, 0XFFFF, 0X0000,
- 0XFFFF, 0X0000, 0XFFFF, 0X0000,
- 0XFFFF, 0X0000, 0XFFFF, 0X0000,
- 0XFFFF, 0X0000, 0XFFFF, 0X0000,
- 0X0000
- };
- UNSIGNED SHORT HT3[] = {
- 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
- 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
- 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
- 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
- 0X0000
- };
-
- STRUCT POINT TP1 = {20, 42};
- STRUCT POINT TPA = {22, 22};
- STRUCT POINT TPB = {22, 02};
- STRUCT POINT TPC = {42, 02};
- STRUCT POINT TPD = {42, 22};
- STRUCT POINT TPE = {42, 42};
- STRUCT POINT TPF = {22, 42};
- STRUCT POINT TPG = {02, 42};
- STRUCT POINT TPH = {02, 22};
- STRUCT POINT TPI = {02, 02};
- STRUCT POINT STARTP = {10, 10};
- STRUCT POINT ENDP = {60, 60};
-
- STRUCT RECTANGLE TRX = {{00, 00}, {256, 256}};
- STRUCT RECTANGLE TRY = {{00, 00}, {256, 256}};
- STRUCT RECTANGLE TRZ = {{00, 00}, {256, 256}};
-
- STRUCT RECTANGLE TR = {{16, 32}, {32, 48}};
- STRUCT RECTANGLE TR1 = {{05, 10}, {40, 50}};
- STRUCT RECTANGLE TR2 = {{10, 40}, {50, 60}};
- STRUCT RECTANGLE TR3 = {{25, 30}, {60, 55}};
- STRUCT RECTANGLE TRLA = {{01, 01}, {60, 60}};
- STRUCT RECTANGLE TRA = {{22, 22}, {38, 38}};
- STRUCT RECTANGLE TRB = {{22, 02}, {38, 18}};
- STRUCT RECTANGLE TRC = {{42, 02}, {58, 18}};
- STRUCT RECTANGLE TRD = {{42, 22}, {58, 38}};
- STRUCT RECTANGLE TRE = {{42, 42}, {58, 58}};
- STRUCT RECTANGLE TRF = {{22, 42}, {38, 58}};
- STRUCT RECTANGLE TRG = {{02, 42}, {18, 58}};
- STRUCT RECTANGLE TRH = {{02, 22}, {18, 38}};
- STRUCT RECTANGLE TRI = {{02, 02}, {18, 18}};
-
- STRUCT BITMAP TESTB = {PATTERN, 1, {{16, 32}, {32, 48}}, 0};
- STRUCT BITMAP HB1 = {HT1, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
- STRUCT BITMAP HB2 = {HT2, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
- STRUCT BITMAP HB3 = {HT3, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
- STRUCT BITMAP HBA = {SPIRAL, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
-
- STRUCT LAYER *DRAWP;
-
- STRUCT LAYER *TL1;
- STRUCT LAYER *TL2;
- STRUCT LAYER *TL3;
- STRUCT LAYER *TLA;
-
- TEST (TESTNO, SIZE)
- INT TESTNO;
- INT SIZE;
- {
- INT I;
-
- STRUCT LAYER *NEWLAYER ();
-
- LAYERS ();
- SWITCH (TESTNO) {
- DEFAULT:
- CASE 1:
- TL1 = NEWLAYER (DISPLAY, TRX, NULL);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- STARTP.X = 110;
- STARTP.Y = 110;
- FOR (I = 10; I <= 210; I += 5) {
- ENDP.X = I;
- ENDP.Y = 10;
- LLINE (TL1, STARTP, ENDP, S);
- }
- FOR (I = 10; I <= 210; I += 5) {
- ENDP.X = 210;
- ENDP.Y = I;
- LLINE (TL1, STARTP, ENDP, S);
- }
- FOR (I = 10; I <= 210; I += 5) {
- ENDP.X = I;
- ENDP.Y = 210;
- LLINE (TL1, STARTP, ENDP, S);
- }
- FOR (I = 10; I <= 210; I += 5) {
- ENDP.X = 10;
- ENDP.Y = I;
- LLINE (TL1, STARTP, ENDP, S);
- }
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- BREAK;
- CASE 2:
- DRAWP = NEWLAYER (DISPLAY, TRY, NULL);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- HILBERT (4, 128);
- BREAK;
- CASE 3:
- DRAWP = NEWLAYER (DISPLAY, TRZ, NULL);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- SIERPINSKI (4, 128);
- BREAK;
- CASE 4:
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- TL1 = NEWLAYER (DISPLAY, TR1, &HB1);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- TL2 = NEWLAYER (DISPLAY, TR2, &HB2);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- TL3 = NEWLAYER (DISPLAY, TR3, &HB3);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBLT (TL1, &TESTB, TR, NULL, TR.ORIGIN, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TL1, TR, TL2, TP1, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- UPFRONT (TL1);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- UPFRONT (TL2);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- UPFRONT (TL3);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- DELLAYER (TL2);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- DELLAYER (TL1);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- DELLAYER (TL3);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- BREAK;
- CASE 5:
- TLA = NEWLAYER (DISPLAY, TRLA, NULL);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBLT (TLA, &HBA, HBA.RECT, NULL, TPA, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPB, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPC, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPD, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPE, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPF, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPG, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPH, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- LBITBLT (TLA, TRA, TLA, TPI, NULL, S);
- PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
- BREAK;
- }
- }